/*********************************************************************************************
	Fichier: NCURSESFonctions.h
	Pour définir les fonctions utilisées dans NCURSESFonctions.c
**********************************************************************************************/

#ifndef NCURSES_FONCTIONS_H
#define NCURSES_FONCTIONS_H

#include <ncurses.h>


#include "Constantes.h"
#include "Formes.h"
#include "Terrain.h"
#include "Jeu.h"

/* définitions des positions du titre, du terrain, de la pièce suivante, du niveau et du score */

#define PositionTerrainX 3
#define PositionTerrainY 2

#define positionTitreX 0
#define positionTitreY 0

#define positionSuivanteX 4
#define positionSuivanteY 32

#define positionNiveauX 15
#define positionNiveauY 32

#define positionScoreX 10
#define positionScoreY 32


#define ESCAPE_KEY 27 /* sert à gerer la touche Echap */


/*
	Démarrage de ncurses
*/
void NCURSES_INIT(void);

/*
	 Ferme le module.
*/
void NCURSES_STOP(void);



/*
	Affiche le Jeu j qui ne tiens pas compte de l'état de la partie.
	le jeu j doit être initialisé.
*/
void NCURSESAfficherJeu(Jeu * j);

/*
	Déplace une pièce j.
	parametre: Piece * tombe doit être différent de NULL.
	preconditon: le jeu doit être initialisé.
*/
void NCURSESDeplacerPiece(Jeu * j);


/*
	Affiche l'intégralité du terrain qui se trouve dans la structure jeu et à la place indiquée dans la définition des positions.
	 le jeu doit être initialisé.
*/
void NCURSESAfficherTerrain(Jeu * j);

/*
	Affiche le titre à la place indiquée dans la définition des positions.
*/
void NCURSESAfficherTitre(void);



void AfficherBloc(int x, int y, Couleur c);

/*
	Affiche la pièce suivante qui va tomber à la place indiquée dans la définition des positions.
	le jeu doit être initialisé.
*/
void NCURSESAfficherSuivante(Jeu * j);


/*
	Affiche le score à la place indiquée dans la définition des positions.
	 le jeu doit être initialisé.
*/
void NCURSESAfficherScore(Jeu * j);


/*
	Affiche le niveau à la place indiquée dans la définition des positions.
	precondition: le jeu doit être initialisé.
*/
void NCURSESAfficherNiveau(Jeu * j);

#endif
